//****************************************************************************
// File Name: WineryTour.h
// Wine Tours project
// Group #2: Allen McLennan, Ryan Neal, Mike Matz
// CS 1C
// April 28, 2010
// Definition of WineryTour class
//****************************************************************************

#ifndef WINERYTOUR_H_
#define WINERYTOUR_H_

#include <vector>

#include"winery.h"

using namespace std;

class WineryTour {
public:
	WineryTour();

	//Adds a winery to the vector
	void AddWineryToList(Winery wOjbect);

	//Returns the list
	vector<Winery> GetWineryList();
	//Outputs the wines purchased and the total spent
	void PrintSales();
	//Add a wine to the winesPurchased list
	void AddWine(Wine wPurchase);
	//Update total spent
	void SetSpent(float amount);
	//Returns total spent
	float GetSpent();
	//Walks the vector of wineries
	void TakeTour();
	//Outputs wines at winery and allows user to pick one
	void BuyWine(Winery current);

	//Checks if the vectors are empty
	template <typename T>
	inline bool IsEmpty(vector<T> list)
	{
		return list.empty();
	};

	//Deletes vectors
	template <typename U>
	void Clear(vector<U> vec)
	{
		vec.erase(vec.begin(), vec.end());
	}

	//Returns number of wineries stored in wineryList
	int WineryListSize();

	virtual ~WineryTour();
private:
	vector<Winery> wineryList;		//List of wineries user will be
									//	touring
	vector<Wine> winesPurchased;	//List of wines user has purchased
	float totalSpent;				//Total amount user has spent
	float totalDistance;			//total distance traveled

};

#endif /* WINERYTOUR_H_ */
